<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>ECharts 折线图示例</title>
    <!-- 引入 ECharts 文件 -->
    <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.min.js"></script>
</head>
<body>
    <!-- 为ECharts准备一个具备大小（宽高）的Dom -->
    <div id="main" style="width: 600px;height:400px;"></div>
    <script type="text/javascript">
        // 基于准备好的dom，初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));

        var data = [3000, 2800, 900, 1000, 800, 700, 1400, 1300, 900, 1000, 800, 600];
        // 计算最大值、最小值和平均值
        var maxValue = Math.max.apply(null, data);
        var minValue = Math.min.apply(null, data);
        var sum = data.reduce(function(a, b) { return a + b; }, 0);
        var averageValue = sum / data.length;
        // 指定图表的配置项和数据
        var option = {
            title: {
                text: '折线图示例'
            },
            tooltip: {
                trigger: 'axis' // 提示框触发方式，默认数据触发，可选为：'item'、'axis'
            },
            legend: {
                data:['销量'] // 图例
            },
            grid: {
                left: '3%',
                right: '4%',
                bottom: '3%',
                containLabel: true
            },
            toolbox: {
                feature: {
                    saveAsImage: {}
                }
            },
            xAxis: {
                type: 'category',
                boundaryGap: ['30%', '40%'],
                data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'] // x轴数据
            },
            yAxis: {
                type: 'value',
            },
            series: [
                {
                    name: '销量',
                    type: 'line', // 折线图
                    stack: '总量',
                    areaStyle: {
                        color:'pink', // 区域填充颜色
                    }, // 区域填充样式
                    smooth: true, // 平滑曲线
                    lineStyle: {
                        color: 'green', // 折线颜色
                        type:'solid', // 折线样式，可选为：'solid' | 'dotted' | 'dashed
                    },
                    data: [3000, 2800, 900, 1000, 800, 700, 1400, 1300, 900, 1000, 800, 600],// y轴数据
                    markLine: {
                        // 自定义标线配置
                        data: [
                            // 一条标线：平均值线
                            {
                                type: 'average',
                                name: '平均值'
                            },
                        ],
                        
                    },
                    markPoint: {
                        // 标记点配置
                        data: [
                            // 最大值点
                            {
                                type: 'max',
                                name: '最大值'
                            },
                            // 最小值点
                            {
                                type: 'min',
                                name: '最小值'
                            },
                            // 平均值点
                            // {
                            //     coord: [null, averageValue], // 使用coord直接指定坐标位置
                            //     name: '平均值'
                            // }
                        ],
                        // 标记点样式
                        label: {
                            show: true,
                            formatter: function (param) {
                                return param.data.name + ': ' + param.value;
                            }
                        }
                    },
                    markArea: {
                        data: [
                            [
                                {
                                    xAxis: '1月',
                                },
                                {
                                    xAxis: '2月',
                                }
                            ],
                            [
                                {
                                    xAxis: '7月',
                                },
                                {
                                    xAxis: '8月',
                                }
                            ]
                        ]
                    }             
                }
            ]
        };

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
    </script>
</body>
</html>